home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
GRAPHICS
/
POV302.ZIP
/
pov302
/
povscn
/
level3
/
pov
/
chess
next >
Wrap
Text File
|
1997-07-27
|
11KB
|
488 lines
#include "shapes.inc"
global_settings { assumed_gamma 1.8 }
default { finish { ambient .3 diffuse .7 } }
#declare r=seed(54321)
camera { location <59, 20, -48> look_at <0, 0, 1> }
light_source { <800, 600, -200> rgb 1 }
#declare Pawn = union
{
sphere { 7*y, 1.5 }
sphere { 0, 1 scale <1.2, .3, 1.2> translate 5.5*y }
intersection
{
plane { y, 5.5 }
object { Hyperboloid_Y translate 5*y scale <.5, 1, .5> }
plane { -y, -2.5 }
bounded_by { sphere { 3.75*y, 1.86 } }
}
sphere { 0, 1 scale <2, .5, 2> translate 2.3*y }
intersection
{
sphere { 0, 2.5 }
plane { -y, 0 }
}
}
#declare Rook = union
{
difference
{
cylinder { 8*y, 10*y, 2 }
object { Cylinder_Y scale <1.2, 1, 1.2> }
box { <-.5, 9, -2.5>, <.5, 10.5, 2.5> }
box { <-2.5, 9, -.5>, <2.5, 10.5, .5> }
bounded_by { sphere { 9*y, sqrt(5) } }
}
intersection
{
plane { y, 8 }
object { Hyperboloid_Y scale <1, 1.5, 1> translate 5.401924*y }
plane { -y, -3 }
bounded_by { sphere { 5.5*y, 3.14 } }
}
sphere { 0, 1 scale <2.5, .5, 2.5> translate 2.8*y }
intersection
{
sphere { 0, 3 }
plane { -y, 0 }
}
}
#declare Knight = union
{
intersection
{
object { Cylinder_Z scale 17.875 translate <-18.625, 7, 0> inverse }
object { Cylinder_Z scale 17.875 translate <18.625, 7, 0> inverse }
object { Cylinder_X scale 5.1 translate <0, 11.2, -5> inverse }
union
{
plane { y, 0 rotate 30*x translate 9.15*y }
plane { z, 0 rotate -20*x translate 10*y }
}
union
{
plane { -y, 0 rotate 30*x translate 7.15*y }
plane { y, 0 rotate 60*x translate 7.3*y }
}
union
{
plane { y, 0 rotate -45*z }
plane { y, 0 rotate 45*z }
translate 9*y
}
object { Cylinder_Y scale 2 }
sphere { 7*y, 4 }
bounded_by { sphere { 7*y, 4 } }
}
sphere { 0, 1 scale <2.5, .5, 2.5> translate 2.8*y }
intersection
{
sphere { 0, 3 }
plane { -y, 0 }
}
}
#declare Bishop = union
{
sphere { 10.8*y, .4 }
intersection
{
sphere { 0, 1 scale <1.4, 2.1, 1.4> translate 8.4*y }
plane { -y, -7 }
box { <-2, 0, -.25>, <2, 4, .25> rotate 30*x translate 8.5*y inverse }
bounded_by { sphere { 0, 1 scale <1.4, 2.1, 1.4> translate 8.4*y } }
}
sphere { 0, 1 scale <1.5, .4, 1.5> translate 7*y }
intersection
{
plane { y, 7 }
object { Hyperboloid_Y scale <.6, 1.4, .6> translate 7*y }
plane { -y, -3 }
bounded_by { sphere { 4.64*y, 2.48 } }
}
sphere { 0, 1 scale <2.5, .5, 2.5> translate 2.8*y }
intersection
{
sphere { 0, 3 }
plane { -y, 0 }
}
}
#declare QueenAndKing = union
{
sphere { 10.5*y, 1.5 }
difference
{
cone { 11.5*y, 13/6, 8*y, 1 }
sphere { <1.75, 12, 0>, .9 rotate 150*y }
sphere { <1.75, 12, 0>, .9 rotate 120*y }
sphere { <1.75, 12, 0>, .9 rotate 90*y }
sphere { <1.75, 12, 0>, .9 rotate 60*y }
sphere { <1.75, 12, 0>, .9 rotate 30*y }
sphere { <1.75, 12, 0>, .9 }
sphere { <1.75, 12, 0>, .9 rotate -30*y }
sphere { <1.75, 12, 0>, .9 rotate -60*y }
sphere { <1.75, 12, 0>, .9 rotate -90*y }
sphere { <1.75, 12, 0>, .9 rotate -120*y }
sphere { <1.75, 12, 0>, .9 rotate -150*y }
sphere { <1.75, 12, 0>, .9 rotate -180*y }
bounded_by { box { <-13/6, 8, -13/6>, <13/6, 11.5, 13/6> } }
}
sphere { 0, 1 scale <1.8, .4, 1.8> translate 8*y }
intersection
{
plane { y, 8 }
object { Hyperboloid_Y scale <.7, 1.6, .7> translate <0, 7, 0> }
plane { -y, -3 }
bounded_by { sphere { 5.22*y, 2.93 } }
}
sphere { 0, 1 scale <2.5, .5, 2.5> translate 2.8*y }
intersection
{
sphere { 0, 3 }
plane { -y, 0 }
}
}
#declare Queen = union
{
sphere { 12.3*y, .4 }
object { QueenAndKing }
}
#declare King = union
{
box { <-.25, 11.5, -.25>, <.25, 13.5, .25> }
box { <-.75, 12.5, -.25>, <.75, 13, .25> }
object { QueenAndKing }
}
#declare WWood = texture
{
pigment
{
wood
colour_map
{
[ .2 colour rgb <.7, .4, .1> ]
[ .5 colour rgb <.95, .62, .3> ]
}
turbulence .07
quick_colour rgb <.95, .62, 0>
rotate 90*x
scale .4
translate <200, 0, 100>
}
finish { specular 1 roughness .01 }
}
#declare BWood = texture
{
pigment
{
wood
colour_map
{
[ .4 colour rgb <.45, .25, 0> ]
[ .7 colour rgb <.3, .16, 0> ]
}
turbulence .07
quick_colour rgb <.4, .2, 0>
rotate 90*x
scale .4
translate <100.0, 0, -200.0>
}
finish { specular 1 roughness .01 }
}
#declare FWood = texture
{
pigment
{
wood
colour_map
{
[ .4 colour rgb <.55, .35, 0> ]
[ .7 colour rgb <.35, .2, 0> ]
}
quick_colour rgb <.45, .3, 0>
turbulence .07
scale <.6 .6 6>
}
finish { specular 1 roughness .02 }
}
#declare WPawn = object { Pawn texture { WWood } }
declare BPawn = object { Pawn texture { BWood } }
declare WRook = object { Rook texture { WWood } }
declare BRook = object { Rook texture { BWood } }
declare WKnight = object { Knight texture { WWood } }
declare BKnight = object { Knight texture { BWood } }
declare WBishop = object { Bishop texture { WWood } }
declare BBishop = object { Bishop texture { BWood } }
declare WQueen = object { Queen texture { WWood } }
declare BQueen = object { Queen texture { BWood } }
declare WKing = object { King texture { WWood } }
declare BKing = object { King texture { BWood } }
#declare Frame_side = intersection
{
box { <-35, -3, -35>, <35, 0, -32> }
plane { -x+z, 0 }
plane { x+z, 0 }
}
// The frame of the chessboard
union
{
object { Frame_side }
object { Frame_side rotate 180*y }
texture { FWood rotate -88*y translate <200, 40, -20> }
}
union
{
object { Frame_side rotate -90*y }
object { Frame_side rotate 90*y }
texture { FWood rotate 1.2*x translate <100, 30, 0> }
}
// The board
box
{
<-32, -3, -32>, <32, 0, 32>
texture
{
tiles
{
texture
{
pigment
{
marble
colour_map
{
[ .7 colour rgb 1 ]
[ .9 colour rgb .8 ]
[ 1 colour rgb .5 ]
}
quick_colour rgb .8
turbulence 1
scale .6
rotate -30*y
}
finish { specular 1 roughness .02 reflection .25 }
}
tile2 texture
{
pigment
{
granite
colour_map
{
[0 colour rgb 0 ]
[1 colour rgb .5 ]
}
quick_colour rgb .3
scale .3
}
finish { specular 1 roughness .02 reflection .25 }
}
}
scale 8
}
}
// White pieces
union
{
object { WPawn rotate 360*rand(r)*y translate -28*x }
object { WPawn rotate 360*rand(r)*y translate -20*x }
object { WPawn rotate 360*rand(r)*y translate -12*x }
object { WPawn rotate 360*rand(r)*y translate -4*x }
object { WPawn rotate 360*rand(r)*y translate 4*x }
object { WPawn rotate 360*rand(r)*y translate 12*x }
object { WPawn rotate 360*rand(r)*y translate 20*x }
object { WPawn rotate 360*rand(r)*y translate 28*x }
translate -20*z
}
union
{
object { WRook rotate 360*rand(r)*y translate -28*x }
object { WKnight translate -20*x }
object { WBishop rotate 360*rand(r)*y translate -12*x }
object { WQueen rotate 360*rand(r)*y translate -4*x }
object { WKing rotate 360*rand(r)*y translate 4*x }
object { WBishop rotate 360*rand(r)*y translate 12*x }
object { WKnight translate 20*x }
object { WRook rotate 360*rand(r)*y translate 28*x }
translate -28*z
}
// Black pieces
union
{
object { BPawn rotate 360*rand(r)*y translate -28*x }
object { BPawn rotate 360*rand(r)*y translate -20*x }
object { BPawn rotate 360*rand(r)*y translate -12*x }
object { BPawn rotate 360*rand(r)*y translate -4*x }
object { BPawn rotate 360*rand(r)*y translate 4*x }
object { BPawn rotate 360*rand(r)*y translate 12*x }
object { BPawn rotate 360*rand(r)*y translate 20*x }
object { BPawn rotate 360*rand(r)*y translate 28*x }
translate 20*z
}
union
{
object { BRook rotate 360*rand(r)*y translate -28*x }
object { BKnight rotate 180*y translate -20*x }
object { BBishop rotate 360*rand(r)*y translate -12*x }
object { BQueen rotate 360*rand(r)*y translate -4*x }
object { BKing rotate 360*rand(r)*y translate 4*x }
object { BBishop rotate 360*rand(r)*y translate 12*x }
object { BKnight rotate 180*y translate 20*x }
object { BRook rotate 360*rand(r)*y translate 28*x }
translate 28*z
}
// Table
union
{
intersection
{
plane { y, -3 }
plane { -y, 8 }
sphere { -5.5*y, 55 }
}
intersection
{
plane { y, -8 }
plane { -y, 80 }
object
{
Hyperboloid_Y
scale <10, 20, 10>
translate -20*y
}
bounded_by { sphere { -50*y, 44.2 } }
}
pigment
{
granite
scale 6
quick_colour rgb .5
}
finish { specular 1 roughness .02 reflection .3 }
}
// Sky
object
{
sphere { -39000*y, 40000 inverse }
pigment
{
bozo
colour_map
{
[.5, colour rgb <.4, .5, 1> ]
[.7, colour rgb 1 ]
[1 colour rgb .7 ]
}
turbulence .6
quick_colour rgb <.4, .5, 1>
scale 500
}
finish { ambient 1 diffuse 0 }
no_shadow
}
// Ground
object
{
plane { y, -80 }
pigment { rgb <.1, .6, .05> }
finish { crand .05 ambient .5 diffuse .5 }
no_shadow
}